home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 2 / Gekikoh Dennoh Club Vol. 2 (Japan).7z / Gekikoh Dennoh Club Vol. 2 (Japan) (Track 01).bin / fsw / zm302 / zm302_s.lzh / MPSRC045.LZH / P16_0203.HAS < prev    next >
Text File  |  1996-06-16  |  3KB  |  103 lines

  1. *=======================================================
  2. *
  3. *    16bitPCM 10.4kHz変換
  4. *
  5. *=======================================================
  6.  
  7. PCM16_0203_mac    macro        _vol
  8.  
  9.         move.l        #((MIX_SIZE*2)/3)*4-2,d6
  10.         add.l        a0,d6
  11.         cmp.l        a3,d6
  12.         bcs        @f            * 今回の処理中にはトラップしない
  13.  
  14.         moveq.l        #(MIX_SIZE*2)/3-1-1,d6
  15. 2:        cmpa.l        a3,a0            * トラップアドレス判定
  16.         bcs        1f
  17.         jsr        (a4)            * トラップ!
  18. 1:        move.w        (a0)+,d0        * PCMデータ取り込み
  19.         VOLUME        _vol,d0,d2
  20.         add.w        d0,(a1)+
  21.         add.w        d0,(a1)+
  22.  
  23.         cmpa.l        a3,a0            * トラップアドレス判定
  24.         bcs        1f
  25.         jsr        (a4)            * トラップ!
  26. 1:        move.w        (a0)+,d0        * PCMデータ取り込み
  27.         VOLUME        _vol,d0,d2
  28.         add.w        d0,(a1)+
  29.         dbra        d6,2b
  30.  
  31. *        ラストの1回
  32.         cmpa.l        a3,a0            * トラップアドレス判定
  33.         bcs        1f
  34.         jsr        (a4)            * トラップ!
  35. 1:        move.w        (a0)+,d0        * PCMデータ取り込み
  36.         VOLUME        _vol,d0,d2
  37.         add.w        d0,(a1)+
  38.         add.w        d0,(a1)+
  39.  
  40.         cmpa.l        a3,a0
  41.         bcs        1f
  42.         jsr        (a4)            * トラップ!
  43. 1:        move.w        (a0)+,d0        * PCMデータ取り込み
  44.         move.w        d0,CH_LAST_PCM(a5)    * 前回変換終了時のPCM値 = d0.w
  45.         VOLUME        _vol,d0,d2
  46.         move.w        d0,CH_LAST_VPCM(a5)    * 最後のPCM値(音量変換後)
  47.         add.w        d0,(a1)+
  48.  
  49.         move.l        a0,CH_PCM_ADR(a5)    * PCMアドレス = a0.l
  50.  
  51.         rts
  52.  
  53.         * トラップ無し
  54. @@:        moveq.l        #(MIX_SIZE*2)/3-1-1,d6
  55. 2:        move.w        (a0)+,d0        * PCMデータ取り込み
  56.         VOLUME        _vol,d0,d2
  57.         add.w        d0,(a1)+
  58.         add.w        d0,(a1)+
  59.  
  60.         move.w        (a0)+,d0        * PCMデータ取り込み
  61.         VOLUME        _vol,d0,d2
  62.         add.w        d0,(a1)+
  63.         dbra        d6,2b
  64.  
  65. *        ラストの1回
  66.         move.w        (a0)+,d0        * PCMデータ取り込み
  67.         VOLUME        _vol,d0,d2
  68.         add.w        d0,(a1)+
  69.         add.w        d0,(a1)+
  70.  
  71.         move.w        (a0)+,d0        * PCMデータ取り込み
  72.         move.w        d0,CH_LAST_PCM(a5)    * 前回変換終了時のPCM値 = d0.w
  73.         VOLUME        _vol,d0,d2
  74.         move.w        d0,CH_LAST_VPCM(a5)    * 最後のPCM値(音量変換後)
  75.         add.w        d0,(a1)+
  76.  
  77.         move.l        a0,CH_PCM_ADR(a5)    * PCMアドレス = a0.l
  78.  
  79.         rts
  80.  
  81.         endm
  82.  
  83. *=======================================================
  84.  
  85. PCM16_0203_v00:PCM16_0203_mac    0
  86. PCM16_0203_v01:PCM16_0203_mac    1
  87. PCM16_0203_v02:PCM16_0203_mac    2
  88. PCM16_0203_v03:PCM16_0203_mac    3
  89. PCM16_0203_v04:PCM16_0203_mac    4
  90. PCM16_0203_v05:PCM16_0203_mac    5
  91. PCM16_0203_v06:PCM16_0203_mac    6
  92. PCM16_0203_v07:PCM16_0203_mac    7
  93. PCM16_0203_v08:PCM16_0203_mac    8
  94. PCM16_0203_v09:PCM16_0203_mac    9
  95. PCM16_0203_v10:PCM16_0203_mac    10
  96. PCM16_0203_v11:PCM16_0203_mac    11
  97. PCM16_0203_v12:PCM16_0203_mac    12
  98. PCM16_0203_v13:PCM16_0203_mac    13
  99. PCM16_0203_v14:PCM16_0203_mac    14
  100. PCM16_0203_v15:PCM16_0203_mac    15
  101. PCM16_0203_vnn:PCM16_0203_mac    'n'
  102. PCM16_0203_non:PCM16_0203_mac    'x'
  103.